<!-- 
This file is subject to the terms and conditions defined in
file 'LICENSE', which is part of this source code package.
      Copyright (c) 2011 SKR Farms (P) LTD.
-->

<html >
  <head  class="pluggdsite">
    <link  rel="icon" type="image/ico" href="static/paicon16x16.png"/><title > base-page</title>


    
    
  <style   type="text/css">
    @font-face {
      font-family: 'Amaranth';
      font-style: normal;
      font-weight: normal;
      src: local('Amaranth'), url('static/fonts/amaranth/Amaranth-webfont.woff') format('woff');
    }
    @font-face {
      font-family: 'Open Sans';
      font-style: normal;
      font-weight: normal;
      src: local('Open Sans'), url('static/fonts/open_sans/OpenSans-Regular-webfont.woff') format('woff');
    }

  </style><link  rel="stylesheet" charset="utf-8" type="text/css" href="static/default.css"/>
    
  <style   type="text/css">
    div.features {
      margin : 0px 5px;
    }
    div.features p.title {
      font-family : Amaranth, arial;
      font-size : large;
    }
    div.features input[type="text"] {
      margin : 10px 0px 0px 0px;
      background-color : #444;
      border : 1px solid gray;
      width : 40%;
      color : white;
    }
    div.features fieldset {
      padding : 0px 3px 5px 3px;
      margin : 0px 5px;
      width : 45%;
      border : 1px solid gray;
    }
    div.features fieldset legend {
      font-weight : bold;
      font-family : Amaranth, arial;
    }
    div.features fieldset div.keywords {
      text-align : center;
    }
    div.search {
      height : 5em;
    }
    div.features ul {
      list-style : none; 
      padding : 0px;
      margin : 0px;
    }
    div.features ul li {
      border-left : 1px solid crimson;
      margin : 5px 0px;
      background-color : #444;
      padding : 3px;
      padding-left : 5px;
      font-weight : bold;
      border-top : 1px solid #444;
    }
    div.features ul li:hover {
      background-color : #999;
      border-top : 1px solid #DDD;
      color : black;
      text-shadow : 0px 1px 1px #FFF, 0px 1px 1px black;
      -moz-text-shadow : 0px 1px 1px #FFF, 0px 1px 1px black;
      -webkit-text-shadow : 0px 1px 1px #FFF, 0px 1px 1px black;
    }

</style>
    <script  type="text/javascript" src="static/jquery-1.5.1.min.js">
  </script><script  type="text/javascript" src="static/jqlib.js">
  </script><script  type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-26824958-1']);
    _gaq.push(['_setDomainName', 'pluggdapps.com']);
    _gaq.push(['_trackPageview']);
    (function() {
      var ga = document.createElement('script');
      ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ?
                  'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0];
      s.parentNode.insertBefore(ga, s);
    })();


</script>
  <script  type="text/javascript">
    var speed = 200;
    $(document).ready( function() {
      // Search
      $('input.search').keydown( function(e) {
        var patt = new RegExp( $('input.search').val(), "i" );
        $('div.features li').each( function(index, n) {
          patt.test( $(n).text() ) ? $(n).fadeIn(speed) : $(n).fadeOut(speed);
        })
      });
      // Showall
      $('.showall').click( function(e) {
        $('div.features li').each( function(index, n) { $(n).fadeIn(speed); } )
      });
      // Direct search
      $('.dsrch').click( function(e) {
        var patt = new RegExp( $(this).text(), "i" );
        console.log( $(this).text() );
        $('div.features li').each( function(index, n) {
          patt.test( $(n).text() ) ? $(n).fadeIn(speed) : $(n).fadeOut(speed);
        })
      });
    });

</script>
  </head><body  class="pluggdsite">
    
    <div  id="right">
    <nav  style="font-size : x-large">
    <a  class="fntbold" href="/googlegroup"> Join
  </a></nav><br/><div  class="builton">
    <b > built-on</b> 
    <ul >
      <li >
        <a  href="http://whatwg.org"> HTML5
      </a></li><li >
        <a  href="http://python.org"> python
      </a></li><li >
        <a  href="https://developer.mozilla.org/en/JavaScript_Language_Resources"> JavaScript
      </a></li><li >
        <a  href="http://erlang.org"> Erlang

  </a></li></ul></div><div  class="builtwith">
    <b > built-with</b> 
    <ul >
      <li >
        <a  href="http://pylonsproject.com"> Pyramid
      </a></li><li >
        <a  href="http://eazytext.pluggdapps.com"> EazyText
      </a></li><li >
        <a  href="http://tayra.pluggdapps.com"> Tayra
      </a></li><li >
        <a  href="http://couchdb.org"> CouchDB
      </a></li><li >
        <a  href="http://couchpy.pluggdapps.com"> CouchPy
      </a></li><li >
        <a  href="http://jquery.com/"> jQuery

  </a></li></ul></div><div  class="builtfor">
    <b > built-for</b> 
    <ul >
      <li >
        <a  href="http://pluggdapps.com"> pluggdapps.com

</a></li></ul></div></div>
  <div  id="left">
    <div  class="ralign leftpane">
    <ul >
      <li >
        <a  href="/index"> home
      </a></li><li >
        <a  href="/overview"> bootstrap
      </a></li><li >
        <a  href="/ispecroot"> Interface Specification Request
      </a></li><li >
        <a  href="/config"> Configuration
      </a></li><li >
        <a  href="/psite_getstarted"> Get Started

</a></li></ul></div></div>
  <div  id="center">
    
  <div  class="features">
    <p  class="title"> Pluggdapps in a nutshell, that it is today and that it will be
      tomorrow.</p>
    <div  class="search">
      <input type="text" class="search" placeholder="Search features ..."></input>
      <a  class="showall fntxsmall pointer"> show-all
      </a><fieldset  class="floatr">
        <legend > Common search terms</legend>
        <div  class="keywords">
          <span  class="dsrch pointer ralign">plugin</span>
          <span  class="dsrch pointer ralign">template</span>
          <span  class="dsrch pointer ralign">web|html</span>
          <span  class="dsrch pointer ralign">couch</span>
          <span  class="dsrch pointer ralign">tayra</span>
          <span  class="dsrch pointer ralign">program</span></div>
    </fieldset></div><ul >
      <li >Build applications on web-technologies. Build it on pluggdapps.
      </li><li >Linus took unix to all programmers, and apt-get took Linux to all people.
        In pluggdapps, deploy a website by installing a package.
      </li><li >Not just websites, whether it is an application or web-application, libraries
        or plugins or just couple of template files, deploy them by installing an egg
        package.
      </li><li >MVC (Model-View-Controller) is great. Plugin architecture is great. Do them
        both in pluggdapps and get the best of both worlds.
      </li><li >Should client and server run on different machines ? Not with pluggdapps.
      </li><li >Pluggdapps run on python and javascript and web-browser and uses erlang for
        database, hence, it can run on any device supporting them. Why not ?
      </li><li >Library is a tool. Great libraries are stateless and re-entrant. For
        pluggdapps, even applications are stateless and re-entrant.
      </li><li >A framework is just a library, with callback APIs. A plugin is just a library,
        with callback APIs. Hence, plugins are great way to design frameworks.
      </li><li >To access a library, import them. To access plugins, query for them.
      </li><li >Pluggdapps is not first to do it right, it merely tracks the footsteps of
        its masters - Python, Zope, Pyramid, ...
      </li><li >Interface will specify attributes, methods, method-signature and its function.
        A callback API is nothing but an interface, hence, plugins are nothing but
        a bunch of code implementing an interface. That pretty much sums up the
        plugin architecture.
      </li><li >Install applications and access them on the url.
      </li><li >Configure and customize application along with modules, interfaces and plugins
        used by the application. Configure them in .ini file, configure them via web.
      </li><li >Applications are mounted on the url in three ways - domain, subdomain and
        script. While the default is script, choose the one that fits, and
        applications can be agnostic to how they are mounted.
      </li><li >Url-rewriting. Requests are automatically routed to the mounted
        application.
      </li><li >Cross application access. For apps to access each other in the same run-time.
      </li><li >Scaffolding. From first key-stroke to first application page in less than
        30 seconds.
      </li><li >Authenticate users and authorize them with permissions. Off-the-shelf plugins
        available for challenging credentials and interfacing with backend store.
      </li><li >Your browser has got the best documentation engine ever and wiki makes it
        accessible. Use EazyText to create content for your apps.
      </li><li >EazyText wiki markup. Generate HTML documents with out compromising on its
        readability.
      </li><li >With EazyText highlight your text as bold, italic, underline, subscript,
        superscript and more.
      </li><li >EazyText can hyperlink documents and images.
      </li><li >Text in EazyText looks natural for reading. All the same it can generate
        lists, tables, definitions, blockquotes and paragraphs.
      </li><li >EazyText macros, create new functions and use them in your documents.
      </li><li >EazyText extensions, extend the wiki engine.
      </li><li >Become an expert in EazyText and create interactive documents.
      </li><li >And EazyText is moving towards HTML5.
      </li><li >With CSS and javascript, your browser can be way more than just a document
        renderer. Use tayra templates to design your front end.
      </li><li >HTML is verbose. Make it consise with Tayra.
      </li><li >CSS Selector. That which pulls HTML, Javascript and CSS together.
      </li><li >Tayra templating language. Bunch of syntax wrapped around a bunch of
        specification. Adapt the language to your needs.
      </li><li >Intendations are only natural to html. Why not enforce them ?
      </li><li >Tayra templates. Define templates as function.
      </li><li >Tayra templates. Organise template functions as modules. Import them in other
        templates.
      </li><li >Tayra templates. Templates are modules. Templates are objects. Use template
        inheritance to design layouts.
      </li><li >Tayra templates. Specify template interface. Implement template plugins. Use
        them else-where.
      </li><li >If you like decorators in python, you will like it in Tayra templates.
      </li><li >NoSQL is cool. CouchDB is radical. Program your database with CouchPy.
      </li><li >Don't you feel stored procedure in SQL as an after-thought ? After programming
        (views,...) in CouchDB, there is a high chance you might.
      </li><li >CouchDB on HTTP is nothing but CRUD on ReST.
      </li><li >CouchPy for CouchDB. Model. Transact. Replicate. Program. Query. Eventually
        consistent with MVCC.
      </li><li >
        <em >Programmers believe that the value of their system lies in
          the whole, in the building: posterity discovers it in the bricks with which
          they built and which are often used again for better building.</em>
      </li><li >
        Be it internet apps, be it desktop apps, build them on pluggdapps, whether your
        applications live or whither, your plugins will go on to build better apps.
      </li><li >Start by contributing plugins, grow as you design apps and become a network
        geek.
</li></ul></div></div>


    <table  id="footer">
    <tr >
      <td  class="copyright">
        An SKR Farms Initiative.
        <br/>Website content copyright © by SKR Farms. All rights reserved.
        Pluggdapps and its documentation are licensed under "GPL Version-3".</td>
      <td  class="papowered">
        <div  class="papowered">
    <div  class="stmt">
      <span  class="prop"> On</span>
      pluggdapps</div>
    <div  class="counts"> 100 plugins via 10 interface</div></div></td></tr>

</table></body>


</html>

